23

» WarCraft 3 / Стаки предметов

Похожие вопросы:

ответ
Человек, который сам на вопросы отвечает, 6 уровень, уважаемый картодел, стыдно модуль такими вопросами засорять.
ответ
ну нажимаешь предмет там срабатывает тригерный спел который смотрит в инвенторе нужный паредмет высчитывает его количество по стакам дальше выставляет на месте каста нужного юнита
тут есть система увелечения хп,и функции увеличивающие и определяющие заряд предмета в тригах посмотрите

23

» WarCraft 3 / Оседлать

Похожие вопросы:

ответ
Берем любую пассивную способность и меняем в поле "Графика-цель" нам на нужную модель. Я заменил на "Адский дракон". А за основу взял способность "Аура выносливости". Теперь берем или создаем героя, добавляем ему нашу способность. Модель моего героя "Волшебница". Ставим на карту и проверяем.
Вот что у меня вышло:
Что-то по аналогии с этим?
ответ
Ну не обязательно строительство делать, достаточно дать морф с временем жизни как у яйца феникса, так будет проще.
Событие - юнит применил способность, условие - примененная способность = твоя способность, действие вручить морф яйца феникса и установить время жизни на 15 сек. Смотри как устроен феникс чародея крови.
Можно сделать полностью триггерно, вариантов уйма, можно вместо строительсва, сделать сразу после слияния промежуточного юнита, а ему настроить апгрейд в архонта и при применении слияния, автоматически начинать апгрейд в архонта.
ответ
При использовании этих способностей надо чтобы цель была рядом.
ответ
reaper1691, так в чем проблема? Морф, две формы героя, один конь, одна способность-пустышка отвечающая за выбор коня и запуск триггера, который коня скроет, а герою запустит морф через предмет-руну, еще одна способность-пустышка, которая отвечает за запуск триггера запускающего обратный морф, телепортацию коня к герою и отмену скрытия коня.

23

» WarCraft 3 / Список в JASS

Похожие вопросы:

ответ
FogModifierStart(CreateFogModifierRect(GetLocalPlayer(), FOG_OF_WAR_VISIBLE, bj_mapInitialPlayableArea, true, false))
Создаем модификатор видимости локально.
ответ
Alexey103, глобальную переменную не обязательно. Я бы вообще вместо переменной использовал "Triggering unit" или "Hero manipulating item".
ответ
Дик, переменную можно скормить этому триггеру через JASS или Lua, но событие запишется на основании значения переменной на момент добавления события - можно сколько угодно менять переменную после этого, но триггер будет работать только на того юнита который был записан в переменную на момент когда добавлялось событие. Возможно действие "добавить событие к триггеру" в ГУИ тоже так умеет.
ответ
xgm.guru/p/wc3/memoryhack/comments/7 Хак на память Warcraft3, 7 страница, упоминаются GetHeroAbilityFromList, SetHeroAbilityFromList
также xgm.guru/p/wc3/196378 memhack utils functions, упоминаются GetHeroAbilityFromList.
Буду тестировать по этим наработкам.

23

» WarCraft 3 / Можно ли как-то проверить расу юнита?

Похожие вопросы:

ответ
Свойства игрока - Кланы - Нестандартные кланы + Фикс. параметры игрока (ставим эти галочки и все будет работать).

23

» WarCraft 3 / Генератор декораций.

Похожие вопросы:

ответ
Чтобы выяснить, от чего конкретно фатал, отключай по одному типы декораций.
Я делал подобное, но вместо декораций использовал юнитов - мне нужно было отловить взаимодействие с ними (рубка деревьев, добыча камней, сбор ягод с кустов и т. д.).
Фатал происходил, когда я делал всё в одном триггере и сразу. Потом мне посоветовали уменьшить цикл, сделать перерыв в 0.01 с. и перезапускать триггер. Методом тыка определил максимальное количество, при котором не вылетает. Потом сделал с запасом, чтобы на слабых компах не критовало - и всё работает идеально.

23

» WarCraft 3 / Массивы и циклы

Похожие вопросы:

ответ
что именно в циклах тебе непонятно?
ответ
Ты не обнуляешь переменную, а удаляешь юнита из игры. Запись верная.
Обнуление будет таким.
set udg_EfectRudnik[bj_forLoopAIndex] = null
Но нет смысла обнулять глобалки.

Группы - это тоже объект, как и юнит, вот только юнит имеет визуальную составляющую (его видно глазами), а группа нет.
Изначально массив групп создаёт группу (новая группа всегда пустая) для ячеек 0, ..., размер_массива (указывается в настройках переменной). Во всех остальных ячейках групп просто нет, там нули.
Если группа больше не нужна, её нужно уничтожить (call DestroyGroup(g)), в GUI такого действия нет. После этого группы не существует. Если попытаться что-то добавить в эту группу через переменную, что всё ещё на неё ссылается, ничего не произойдёт.
GUI действия типа "Выбрать юнитов в области" создают новую группу каждый раз, что может вызывать утечки. Потому такие вызовы лучше всего записывать в переменную, делать необходимые действия, а потом уничтожать (не очищать!).
ответ
Extremator:
А что мешает отслеживать изменение содержимого инвентаря? Т.е. получение предмета, который подходит для манипуляций, после чего поочерёдно проверять только те списки, в которых этот предмет участвует... ну и делать что надо
Так ведь я так и делаю. Юнит получает предмет, содержимое его инвентаря записывается в таблицу. И вот, я не могу придумать по какой схеме мне сравнить эту таблицу со списками рецептов. Вот есть TransfigurationData.List[ID] в нём списки TransfigurationData.List[ID][ID1,2,3,4,5....]
Нужно как-то сделать проверку есть ли в списке TransfigurationData.List[0][1](как пример) то что в инвентаре героя, если да то убрать их и выдать TransfigurationData.Result[Тот же ID что и у List] :)

О ес, оно заработало я сам всё решил. Спасибо за внимание :)
ответ
чтож


оказывается допустил ошибку при высчитывании

Нельзя
if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMaxCounter]) == CommandsList[CommandsListMaxCounter] then //-cam, -Cam
// высчитывать Значение Цикла CommandsListMaxCounter внутри переменной CommandsListSubstringEnd
endif
он подберет Индекс CommandsListMaxCounter и будет проверять CommandsListSubstringEnd на наличие Меньшего Значения начиная с 1 до
CommandsListMax
его сразу надо высчитывать чтобы значения цикла не высчитывались

if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMax]) == CommandsList[CommandsListMaxCounter] then
так должно выглядеть

отработает 1 раз для CommandsList с привязкой к СommandsListSubstringEnd

Centyrion, если удалить комментарии, то у тебя пустое условие.
Спасибо! воспользуюсь ссылкой
ответ
циклом медленнее

23

» WarCraft 3 / Скрытие иконки приказа

Похожие вопросы:

ответ
Плохо искал значит ). Ссылки с телефона нет возможности вставить, но глянь проект Кет'а "колдун", там у него на страничке есть ссылка.
ответ
UnitRemoveAbility(whichUnit, 'ARal')
где whichUnit - твое здание
ответ
богопротивные 0,-11 нужно менять на православные buttonpos=-2147483648,-2147483648
ответ
Удержание, патруль и движение - одна и та же способность.

23

» WarCraft 3 / Как воскресить юнита?

Похожие вопросы:

ответ
Дополнительно - Игровые константы - ставим галочку
Там меняем "Время разложения - кости" и "Время разложения - плоть"
ответ
xgm.guru/p/wc3/182728?postid=341504 можно лимит создать, тогда юнита надо будет тренировать. Допустим, вы сделали лимит для игрока в 1 пехотинца. Как только вы наймете одного пехотинца, он тут же пропадает из всех зданий (лимит же). Если умрёт, то обратно появится в покупках в магазинах, точнее тренировать можно заново
ответ
Не шарю вообще в переменных, можно упростить?
Статьи для кого пишут?
ответ
Воскрешай абилкой паладина.

23

» WarCraft 3 / Как изменить максимальное здоровье юниту?

Похожие вопросы:

ответ
Нинадо бж, это не переменная а функция
local unit u = GetEnumUnit( ) 
ответ
S2I принимает строку в качестве параметра и никак её не изменяет
с чего вдруг он должен создавать новые строки?
I2S создаёт временную строку
если в таблице есть строка равная временной по хэшу то он возвращает строку из таблицы
если в таблице строки нету то он добавляет нашу временную строку в таблицу
т.е. обычный алгоритм хэширования
ответ
  1. Ищите вопросы с GetLocalPlayer в названии.
  2. Ответ дали выше.
ответ
Он лежит на случай если игре необходим данный реф. В РО ты мог иногда видеть необходимое приложение и варианты small, medium и large. Также по возможности спецэффекты и эффекты способностей могут к ней крепиться.
А collission насколько я помню отвечает за выделение или за столкновение летающих юнитов. На всякий случай оставляй, а то мало ли, да и места много не просит.
ответ
~8gabriel8:
8i728v5:
Я честно сомневаюсь, что тебе это поможет найти ответ на мой вопрос. (Прикрепил!)
В РО в возможных способностях юнитов стоит Носильщик (человек), там 2 ячейки для переноса, убери это и будет срабатывать с первого раза.

23

» Администрация XGM / Отсутствуют статьи в проекте.

Похожие вопросы:

ответ
Если пишет что ресурсы отсутствуют, то значит они отсутствуют (ваш кэп). Значит например у пользователя пустой блог.
Насчет того что в статьях, о проблеме известно, она решается.

23

» WarCraft 3 / Атака Jass

Похожие вопросы:

ответ
Maniac_91:
VVelikolepniy:
А цикл вызова мобов разве не хуже, чем вызов отряда?
Это точно не знаю, но не помню, что где-то была функция создания группы юнитов по координатам
VVelikolepniy:
И координаты точки все равно потом зачищать нужно, как и область в конце триггера, разве нет?
Ну я ж говорю: координаты вместо точек. Тогда и точки и области не нужны.
Спасибо за помощь) Смотри я переделал по твоему совету с координатами! xgm.guru/p/100/206428
ответ
Кирилл4, на jass есть, вот пример
Для начала тебе хватит, есть более продвинутые системы.
ответ
8gabriel8, я скинул наработку, которая реализует общее событие «получает урон» в 30 строк, для её использования даже думать как именно она работает не нужно.
ответ
C++ тоже показывает 832.0, на С почему-то не смог запустить.
UrsaBoss, вообще, используй нативки, они точнее будут нахождения дистанции "руками" в данном случае. Но не используй Pow(), эта функция очень неточная.
constant native IsUnitInRange       takes unit whichUnit, unit otherUnit, real distance returns boolean
constant native IsUnitInRangeXY     takes unit whichUnit, real x, real y, real distance returns boolean
constant native IsUnitInRangeLoc    takes unit whichUnit, location whichLocation, real distance returns boolean

23

» WarCraft 3 / Как удалить последнюю созданную точку?

Похожие вопросы:

ответ
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
ответ
Maniac_91:
Если без триггеров делать, то можно открыть через War3ModelEditor стандартную модель огня и посмотреть, как там устроен источник звука. Потом открыть свою модель и создать в ней такой же источник звука, не забыв настроить время срабатывания.
Хорошо, без триггеров пусть... Я открывал стандартную модель огня, там вообще нету прицепки звука, потому что в доступных звуках в прицепки нету звука огня. Стандартные звуки все на тему заклинаний, но нету звуков окружения, и нету даже похожего звука бушующего огня! Видимо те стандартные модели огня имеют внешнюю прицепку звука, но не в себе. Я бы не спрашивал если бы проблема не была такой слишком сложной. Не люблю зря беспокоить людей.
ответ
set weather[1-n] = GetLastCreatedWeather()
установить переменную weather[1-n] = Последний созданный погодный эффект
Где 1-n это число индекса массива переменной, выбираешь на своё усмотрение